break;
case MSR_IA32_VMX_PROCBASED_CTLS2:
/* 1-seetings */
- data = 0;
+ data = SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITING;
/* 0-settings */
tmp = 0;
data = (data << 32) | tmp;
if ( ctrl & CPU_BASED_MONITOR_TRAP_FLAG)
nvcpu->nv_vmexit_pending = 1;
break;
+ case EXIT_REASON_ACCESS_GDTR_OR_IDTR:
+ case EXIT_REASON_ACCESS_LDTR_OR_TR:
+ ctrl = __n2_secondary_exec_control(v);
+ if ( ctrl & SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITING )
+ nvcpu->nv_vmexit_pending = 1;
+ break;
/* L1 has priority handling several other types of exits */
case EXIT_REASON_HLT:
ctrl = __n2_exec_control(v);
#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001
#define SECONDARY_EXEC_ENABLE_EPT 0x00000002
+#define SECONDARY_EXEC_DESCRIPTOR_TABLE_EXITING 0x00000004
#define SECONDARY_EXEC_ENABLE_RDTSCP 0x00000008
#define SECONDARY_EXEC_ENABLE_VPID 0x00000020
#define SECONDARY_EXEC_WBINVD_EXITING 0x00000040